#ifndef __CONFIG_H__
#define __CONFIG_H__

#include <stddef.h>

#define ROOT_PATH_LEN 256

// 服务端配置结构体，保存可配置的参数
typedef struct server_config_s
{
    char ip[64];                   // 监听的 IP 地址
    char port[16];                 // 监听的端口
    char root_path[ROOT_PATH_LEN]; // 网盘根路径
} server_config_t;

/**
 * @brief 从配置文件加载配置项
 *
 * path: 配置文件路径（例如："config/server.conf"）
 * cfg:  输出参数，函数会填充 ip 和 port 字段
 *
 * 返回值：
 *   0 - 成功（即使配置文件不存在，也会返回 0 并使用默认值）
 *  -1 - 输入参数非法（path 或 cfg 为 NULL）
 */
int config_load(const char *path, server_config_t *cfg);

// 全局的网盘根路径（由 config_load 设置）
extern char g_root_path[ROOT_PATH_LEN];

#endif // __CONFIG_H__
